Functional programming

I really love functional programming

I played with Racket, Clojure, Ocaml, Rescript, Haskell and Unison

They're all pretty great langs

The thing I like most about it is the pure aspect of functions that make

them not only easier to debug, but overall easier to think about

Unison

The last one I played with

I might do a post about this one in the futur if I continue using it a lot

It has a very interesting way to think about codebases

Basically codebases are viewed as something you interact with through files, instead of something composed or build from files

Otherwise, it's pretty similar to Haskell but syntatically and semantically

It deals with side-effects a bit differently by encapsulating them in the transformation as abilities instead of in the types as monads

I do not understand monads nor abilities so you may want to check them out for yourself but here is a little idea of how it looks just by looking at the type signature of each

In Haskell you got : - hPutStrLn :: Handle -> String -> IO ()

And in Unison it's : - io.printLine : Text ->{IO, Exception} ()